Modul 5 von 16 · 📖 9 min Lesezeit · ⏱ 60 min gesamt

FUTO 05 OpenVPN Server

Inhaltsverzeichnis (6 Abschnitte)
  1. Konzepte und Hintergrund
  2. Architektur-Diagramm
  3. Praktische Schritte
  4. Häufige Fallstricke
  5. Weiterführende Ressourcen
  6. Wissens-Check

FUTO 05 OpenVPN Server

In diesem Modul richten Sie einen sicheren VPN-Server mit OpenVPN ein. Sie lernen, sowohl den Zugriff von externen Geräten (Client-to-Site) als auch die Verbindung zweier Standorte (Site-to-Site) zu konfigurieren. Der Fokus liegt auf einer robusten, produktiven Einrichtung mit TLS-Authentifizierung und Easy-RSA für Zertifikatsverwaltung.

Konzepte und Hintergrund

OpenVPN
Ein Open-Source-VPN-Protokoll, das SSL/TLS für sichere Datenübertragungen verwendet. Es unterstützt sowohl TCP- als auch UDP-Verbindungen und bietet eine hohe Kompatibilität mit verschiedenen Betriebssystemen.
TLS (Transport Layer Security)
Ein Sicherheitsprotokoll, das für die Authentifizierung von Server und Clients sowie die Verschlüsselung der Datenkanäle verwendet wird. OpenVPN nutzt TLS, um eine sichere Verbindung zwischen Client und Server herzustellen.
Site-to-Site
Eine VPN-Konfiguration, die zwei oder mehr Netzwerke miteinander verbindet. Alle Geräte in den verbundenen Netzwerken können sich gegenseitig wie in einem einzigen lokalen Netzwerk erreichen.
Client-to-Site
Eine VPN-Konfiguration, bei der einzelne Geräte (Clients) aus dem Internet eine Verbindung zum Unternehmensnetzwerk herstellen. Jeder Client erhält Zugriff auf die im VPN definierten Netzwerkressourcen.
Easy-RSA
Ein Kommandozeilenwerkzeug zur Verwaltung von PKI (Public Key Infrastructure). Es vereinfaltet die Erstellung und Verwaltung von Zertifikaten für OpenVPN-Server und -Clients.

Architektur-Diagramm

flowchart LR
  A[Internet] --> B[OpenVPN Server]
  B --> C[LAN]
  B --> D[DMZ]
  E[Client] --> B

Praktische Schritte

  1. Installieren Sie OpenVPN auf Ihrem Server mit dem Befehl
    apt update && apt install openvpn easy-rsa
    . Dies installiert die notwendigen Pakete für den VPN-Dienst und die Zertifikatsverwaltung.
  2. Initialisieren Sie das PKI-Verzeichnis mit
    make-cadir ~/easy-rsa && cd ~/easy-rsa
    . Dies erstellt eine strukturierte Umgebung für die Zertifikatsverwaltung.
  3. Passen Sie die Konfigurationsdatei vars an, indem Sie mindestens die Zeilen
    export EASY_RSA="`pwd`"
    export KEY_NAME="server"
    export KEY_COUNTRY="DE"
    export KEY_PROVINCE="BY"
    export KEY_CITY="Muenchen"
    export KEY_ORG="MeinUnternehmen"
    export KEY_EMAIL="[email protected]"
    setzen. Diese Werte werden für die Erstellung der Zertifikate verwendet.
  4. Erstellen Sie den Server-Zertifizierungsstellen-Schlüssel mit
    ./easyrsa init-pca && ./easyrsa build-ca nopass
    . Dies erstellt die Root-CA für Ihre VPN-Infrastruktur.
  5. Generieren Sie den Serverschlüssel mit
    ./easyrsa build-server-full server nopass
    . Dieser Schlüssel wird für die Authentifizierung des VPN-Servers verwendet.
  6. Erstellen Sie Diffie-Hellman-Parameter mit
    ./easyrsa gen-dh
    . Diese Parameter erhöhen die Sicherheit des Schlüsselaustauschs.
  7. Kopieren Sie die generierten Zertifikate und Schlüssel in das OpenVPN-Verzeichnis mit
    cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/
    . Diese Dateien sind für den Betrieb des Servers erforderlich.
  8. Konfigurieren Sie den OpenVPN-Server, indem Sie die Datei /etc/openvpn/server.conf erstellen und grundlegende Einstellungen hinzufügen:
    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh.pem
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1"
    push "dhcp-option DNS 8.8.8.8"
    keepalive 10 120
    comp-lzo
    user nobody
    group nogroup
    persist-key
    persist-tun
    status openvpn-status.log
    verb 3
  9. Starten Sie den OpenVPN-Dienst mit
    systemctl start openvpn@server
    und aktivieren Sie ihn für den Autostart mit
    systemctl enable openvpn@server
    . Der Server ist nun betriebsbereit und wartet auf Verbindungen.

Häufige Fallstricke

Weiterführende Ressourcen

Wissens-Check

Vier Fragen zur Selbstkontrolle. Klicken Sie jede Frage an, um die richtige Antwort und Erklärung zu sehen.

1. Welches Hauptmerkzeichnung unterscheidet Client-to-Site von Site-to-Site VPN-Konfigurationen?
  • A) Die verwendete Verschlüsselungsmethode
  • B) Die Anzahl der beteiligten Netzwerke
  • C) Das verwendete Protokoll (TCP vs. UDP)
  • D) Die Art der Authentifizierung

Richtige Antwort: B. Bei Client-to-Site verbindet ein einzelnes Gerät mit einem Netzwerk, während Site-to-Site zwei oder mehr Netzwerke miteinander verbindet. Die anderen Optionen sind beides VPN-Konfigurationsarten gemeinsam.

2. Was ist der primäre Zweck von Easy-RSA in der OpenVPN-Konfiguration?
  • A) Die Erstellung von Netzwerkkonfigurationsdateien
  • B) Die Verwaltung von PKI und Zertifikaten
  • C) Die Optimierung der VPN-Verbindungsgeschwindigkeit
  • D) Die Authentifizierung von Benutzern über LDAP

Richtige Antwort: B. Easy-RSA ist speziell für die Verwaltung von PKI (Public Key Infrastructure) und Zertifikaten konzipiert. Die anderen Optionen beschreiben andere Funktionen, die nicht zum Kern von Easy-RSA gehören.

3. Welche Sicherheitsfunktion macht OpenVPN besonders sicher?
  • A) Die Verwendung von statischen IP-Adressen
  • B) Die Integration mit Active Directory
  • C) Die Nutzung von TLS für Authentifizierung und Verschlüsselung
  • D)</strong) Die Fähigkeit, NAT-Traversal durchzuführen</li>

Richtige Antwort: C. TLS (Transport Layer Security) ist die Kernkomponente, die OpenVPN seine hohe Sicherheit verleiht, indem es sowohl die Authentifizierung als auch die Verschlüsselung der Datenkanäle sicherstellt. Die anderen Optionen sind Funktionen, aber nicht die primäre Sicherheitsgrundlage.

4. Welcher Befehl initialisiert das PKI-Verzeichnis für die Zertifikatsverwaltung in OpenVPN?
  • A) openvpn --init-pki
  • B) make-cadir ~/easy-rsa
  • C) easyrsa init-pki
  • D) certmgr create

Richtige Antwort: B. Der Befehl make-cadir ~/easy-rsa erstellt das strukturierte Verzeichnis für die Zertifikatsverwaltung. Die anderen Optionen sind entweder falsche Befehle oder nicht Teil des initialen Setup-Prozesses.